ROM Hacking
ROM hacking is the process of modifying a video game ROM Image to alter the game's graphics, dialogue, levels, gameplay, or other elements. This is usually done by technically inclined video game fans to breathe new life into a cherished old game, as a creative outlet, or to make essentially new unofficial games using the old game's engine. ROM hacking is generally accomplished through use of a hex editor (a program for editing non-textual data) and various specialized tools such as tile editors, and game-specific tools which are generally used for editing levels, items, and the like, although more advanced tools such as assemblers and debuggers are occasionally used. Once ready, they are usually distributed on the Internet for others to play on an emulator. Communities Many ROM hackers form or join groups for various reasons, such as for web space to host hacks and/or screenshots, for the support of or collaboration with other members of the group, for privileged status on the group's message board (if it has one), for the prestige associated with the group, or just for the comradeship. Many hackers, however, choose to go solo. Not all group members are necessarily ROM hackers themselves; some have "retired" from the craft, others offer services such as website and/or message board administration, and some simply offer guidance to aspiring ROM hackers. Most hacking groups offer web space for hosting hacks and screenshots (sometimes only hosting hacks by the group's members, sometimes hosting almost any hack), a message board, and often have an IRC channel. Methodology Having been created by many different programmers or programming teams, ROM data can be very diverse. 'Hex editing' A hex editor is one of the most fundamental tools in any ROM hacker's repertoire. Hex editors are usually used for editing text, and for editing other data for which the structure is known (for example, item properties), and Assembly hacking. Hexacute is a well known hex editing program for GBA Pokémon ROMs. Editing text is one of the most basic forms of hacking. Many games do not store their text in ASCII form, and because of this, some specialized hex editors have been developed, which can be told what byte values correspond to what letter(s) of the alphabet, to facilitate text editing; a file that defines these byte=letter relationships is called a "table" file. Other games use simple text compression techniques (such as byte pair encoding, also called dual-tile encoding or DTE, in which certain combinations of two or more letters are encoded as one byte) which a suitably equipped hex editor can facilitate editing. A hex editor is the tool of choice for editing things such as character/item properties, if the structure and location of this data is known and there is no game-specific editor for the game that can edit this information. Some intrepid hackers also perform level editing with a hex editor, but this is extremely difficult (except on games whose level storage format closely resembles how it is presented in a hex editor). 'Graphics editing' Another basic hacking skill is graphics hacking, which is changing the appearance of the game's environs, characters, fonts, or other such things. The format of graphics data varies from console to console, but most of the early ones (NES, Super NES, Game Boy, etc.) store graphics in tiles, which are 16-pixel units of data, which are arranged on-screen to produce the desired result. Editing these tiles is also possible with a hex editor, but is generally accomplished with a tile editor (such as Tile Molester), which can display the ROM data in a graphical way, as well as editing tiles. Graphics hacks can range from simple edits to "porting" characters from one game to another, to full-blown thematic changes (usually with accompanying palette changes; see below). More sophisticated graphics hacking involves changing more than just tiles and colors, but also the way in which the tiles are arranged, or tile groups generated, giving more flexibility and control over the final appearance. This is accomplished through hex editing or a specialized tool (either for the specific game or a specific system). A good example of a graphics hack is the uncompleted Pokémon Torzach, a hack which attempted to add a whole new generation of Pokémon and tiles to the game. The hack has since been discontinued, but it still serves as a good example on what can be achieved with the tools available. 'Palette editing' Another common form of hacking is palette hacking, where color values are modified to change the colors a player sees in the game (this often goes hand-in-hand with graphics hacking); Palette values are commonly stored in Hex. This is fairly easy for GBA games, the graphics of which use a pre-defined set of colors among which a game selects; palette hacking in this case entails changing which of those colors are selected. Palette editors are usually simple and often are with Level editors, or Game specific graphics editors. Advanced Palette Editor is a program built for changing the palette data of Pokémon GBA ROMs. It's use is far and wide. It can be used to change any image palette, as long as the user knows the palette string. 'Map editing' One of the most popular forms of ROM hacking, level editing entails modifying or redesigning a game's levels or maps. This is almost exclusively done with an editor specially tailored for a particular game (called a Map Editor). Level edits can be done to make the game more challenging, to alter the flow of the game's plot, or just to give something new to an old game. Combined with extensive graphics hacking, the game can take on a very different look and feel. There are two Map Editors that are very popular. The Elite Map & Advance Map. Advance Map is slightly more popular as it is still being updated. With Advance Map, you can add maps, edit maps, change map names, edit wraps, edit person events etc. Advance Map is what most Pokémon Hackers use as of today. If it is wanted by anyone, they can download it from Magi Clan. 'Music hacking' Music hacks are relatively rare, due to the wide variety of ways games store music data (hence the difficulty in locating and modifying this data) and the difficulties in composing new music (or porting music from another game). As music cracking is very uncommon, many hacks do not have any ported/composed music added in. The program SapTapper can be used to hack Gameboy Advance music data, however, as many Gameboy Advance games use the M4A Engine (also called "Sappy Driver") for music. The most common form of hacking music is porting music from one ROM file to another, usually both made by the same company. Porting music from two files will almost always pose some type of problem, as the format is almost always different. A good example of music hacking would be the uncompleted hacked game Pokémon: The Legendary Ashes. 'ROM expansion' Generally speaking, a ROM hacker cannot add content to a game, but merely change existing content. This limit can be overcome through ROM expansion, whereby the total size of the ROM image is increased, making room for more content and a larger game. The difficulty in doing this varies depending on the system for which the game was made. For example, expanding an NES ROM may be difficult or even impossible due to the mapper used by the game. For example, if a mapper allows 16 ROM banks and all of them are used, expanding the ROM further is impossible without somehow converting the game to another mapper, which could be easy or extremely difficult. On the other hand, expanding a Super NES game is (relatively) straightforward. To utilize the added space, parts of the game code have to be modified or re-written so the game knows where to look. The Game Boy Advance is generally considered the easiest to expand. Distribution Once a hack is completed (or an incomplete version is deemed suitable for an interim release) it is released onto the Internet for others to play. Sometimes the hack will simply crash before gameplay. The generally accepted way to fix this is by making a patch (in IPS format or others) that can be applied to the unmodified ROM. This, and usually some form of documentation, is put in an archive file and uploaded somewhere. IPS is a format for recording the differences between two binary files (in this case, between the unmodified and hacked ROMs) and is suitable for ROM hacks. IPS is still used today for small patches—however, as ROMs became larger in size, this format became useless, leading to quite a few file formats being created—such as NINJA and PPF ("PlayStation Patch Format"). PPF is still used today, particularly to patch large files such as ISO CD images and Nintendo 64 games. A new patch format, UPS, has also been developed by the ROM hacking community, designed to be the successor to IPS and PPF. A more recent patching format, the APS patching system, has also been developed by a devoted Game Boy Advance ROM hacker. The APS system is more space efficient, reversible, and is faster than its predecessor. The purpose of distributing a hack in patch form is to avoid the legal aspects of distributing entire ROM images; the patch records only what has changed in the ROM, hence distributing it does not distribute parts of the original game. A patch is also smaller than the full ROM image (an NES ROM can run anywhere from 8KB-2MB; a Super NES ROM can run from 256k-6MB). The use of patches does not eliminate copyright issues because the patches may be considered derivative works; however, corporations generally ignore them as long as they are not distributed with the ROMs. Usage Patched ROMs are typically played on emulators, however it is also possible to copy patched ROMs back onto actual physical cartridges for use with the original hardware consoles. The destination cartridge could be the original cartridge from which the initial unpatched ROM was pulled, or another compatible cartridge of the same type. This is particularly popular for fan translations, homebrew games, prototypes, or other games for which original cartridges were never produced, or for games which require exact timing or other elements of the original hardware which are not available in emulators. Popular Hosts Many popular host sites for IPS, GBA roms hacks can be found online. We will mention some below: *Magi Clan ★ *PHO *Whack A Hack! Category:Pokémon